﻿using System;
using System.Collections.Generic;
using System.Text;
using Castle.ActiveRecord;
using Castle.Components.Validator;
using MiragePWF.NH.Validation;
using Wolfut.MirageEE.Kernal.Common;
using Wolfut.MirageEE.Domain.CommonUtilities;

namespace Wolfut.MirageEE.Domain.Procurement
{
    [ActiveRecord("PAYMENT_BILL_DETAILS")]
    public class PayBillDetail : PersistentObjectWithGuid
    {
        #region 付款单ID
        private string paymentBillID;

        [Property("PAYMENT_BILL_ID")]
        [ValidateNonEmpty]
        public virtual string PaymentBillID
        {
            get
            {
                return paymentBillID;
            }
            set
            {
                paymentBillID = value;
            }
        }
        #endregion

        #region 支付账户
        private string paymentAccount;

        [Property("PAYMENT_ACCOUNT")]
        [ValidateLength(0, 100, "支付账户超长")]
        public virtual string PaymentAccount
        {
            get
            {
                return paymentAccount;
            }
            set
            {
                paymentAccount = value;
            }
        }
        #endregion

        #region 支付方式
        private string paymentMode;

        [Property("PAYMENT_MODE")]
        [ValidateLength(0, 100, "支付账户超长")]
        public virtual string PaymentMode
        {
            get
            {
                return paymentMode;
            }
            set
            {
                paymentMode = value;
            }
        }
        #endregion

        #region 付款金额
        private decimal paymentSum;

        [Property("PAYMENT_SUM")]        
        public virtual decimal PaymentSum
        {
            get
            {
                return paymentSum;
            }
            set
            {
                paymentSum = value;
            }
        }
        #endregion

        #region 参考编号
        private string referenceCode;

        [Property("REFERENCE_CODE")]
        [ValidateLength(0, 100, "参考编号超长")]
        public virtual string ReferenceCode
        {
            get
            {
                return referenceCode;
            }
            set
            {
                referenceCode = value;
            }
        }
        #endregion

        #region 是否删除
        [Property("IS_DELETED")]
        [ValidateNonEmpty]
        public virtual bool IsDeleted
        {
            get
            {
                return isDeleted;
            }
            set
            {
                isDeleted = value;
            }
        }
        private bool isDeleted;
        #endregion
    }
}
